package cmap

import "strconv"

// @title IsValueInt64ExistMapInt64
// @description 检测 value 是否 在maps的value里
func IsValueInt64ExistMapInt64(searchV int64, maps map[int64]int64) bool {
	for _, v := range maps {
		if searchV == v {
			return true
		}
	}
	return false
}

// @title KeyInt64InMapInt64
// @description 检测key是否在maps的key里
func IsKeyInt64InMapInt64(key int64, maps map[int64]interface{}) bool {
	if _, ok := maps[key]; ok {
		return true
	}
	return false
}

// @title KeyStringInMapInt64
// @description 检测key是否在maps的key里
func IsKeyStringInMapInt64(key string, maps map[string]interface{}) bool {
	if _, ok := maps[key]; ok {
		return true
	}
	return false
}

// @title KeyInt64ArrInMapInt64
// @description 检测 多个ke y是否在maps的key里 任意一个不在　则返回false
func IsKeyInt64ArrInMapInt64(keys []int64, maps map[int64]interface{}) bool {
	for _, key := range keys {
		if _, ok := maps[key]; !ok {
			return false
		}
	}
	return true
}

// @title StringMapToInt64Map
// @description key 和　value 全部转成int64
func StringMapToInt64Map(values map[string]string) (map[int64]int64, error) {
	returnData := make(map[int64]int64)
	for k, v := range values {
		int64K, errK := strconv.ParseInt(k, 10, 64)
		if errK != nil {
			return nil, errK
		}

		int64V, errV := strconv.ParseInt(v, 10, 64)
		if errV != nil {
			return nil, errV
		}
		returnData[int64K] = int64V
	}
	return returnData, nil
}